function Figures(ResultName,Folder)
% load('Result_0_Baseline.mat');
% Folder          =   'TableGraphs\\Baseline\\';
load([ResultName,'.mat']);
mkdir(Folder);

% Setup
T_IRF           =   12;
XT              =   0+(0:1:T_IRF)';
List_Shock      =   {'Eps_Eta_M_dom','Eps_Eta_M_ext','Eps_Eta_Y_H',...
                     'Eps_Eta_Z','Eps_Eta_Z_N','Eps_Eta_Z_H'};

% IRF of Consumption Distribution
IRF_ConsDist    =   struct();
for ii_Irf=1:length(List_Shock)
    SH                  =   List_Shock{ii_Irf};
    IRF_ConsDist.(SH)   =   IRFAdd_ConsDist(PP,SS,MODEL,EquJac.HH_Aux,length(IRF.(SH).C),IRF.(SH));
end
%% Aggregate Variables
%--------------------------------------------------------------------------
% Setup
%--------------------------------------------------------------------------
% Graphics
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[1,0.75]*1/2.5; 
fig_gap     =   [0.02,0.02];
fig_VMargin =   [0.15,0.02];
fig_HMargin =   [0.18,0.02]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);
LEG         =   @(PH,LabelList)legend(PH,LabelList,'fontsize',8,'interpreter','latex','location','best');
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2g'),...
                        'FontSize',struct('X',8,'Y',8),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',0).Setup(Y);
%--------------------------------------------------------------------------
% Different Figures
%--------------------------------------------------------------------------
% Prices
LabelList   =   {'Real Rate','Nominal Rate','Inflation','Exchange Depreciation'};

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black');TempFun_LP('--','Gray');...
                 TempFun_LP(':','Blue'); TempFun_LP('-.','Red')};

for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    Fig         =   FigureSetup(['IRF of Rates to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    ID          =   1;
    Dev_Pir     =   IRF.(SH).Pir;
    Dev_ir      =   IRF.(SH).ir;
    Dev_rr      =   IRF.(SH).rr_dom;
    Dev_dE      =   IRF.(SH).dE;
    TempIrf     =   [Dev_rr;Dev_ir;Dev_Pir;Dev_dE]*100*4;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
 
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (annualized pp)');
    LEG(PH,LabelList);   

    print('-depsc','-r1000',Fig,[Folder,'Prices_',SH]);
    close(Fig);
end

% Aggregate Demand
LabelList   =   {'Aggregate Consumption','Export','Net Export/GDP'};

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black');TempFun_LP('--','Blue');...
                 TempFun_LP('-.','Red')};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    Fig         =   FigureSetup(['IRF of Demand to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    ID          =   1;
    
    Dev_C       =   IRF.(SH).C;
    Dev_C_H     =   IRF.(SH).C_H;
    Dev_C_F     =   IRF.(SH).C_F;
    Dev_Y_H     =   IRF.(SH).Y_H;
    Dev_p_H     =   IRF.(SH).p_H;
    Dev_p_F     =   IRF.(SH).p_F;
    Dev_Y       =   IRF.(SH).Y;
    
    Export      =   ( MODEL.VAR.Y_H.Dev2Level(Dev_Y_H)-MODEL.VAR.C_H.Dev2Level(Dev_C_H) ).* ...
                    MODEL.VAR.p_H.Dev2Level(Dev_p_H);
    ExportIdx   =   Export./MODEL.VAR.Y.Dev2Level(Dev_Y);
    Dev_Export  =   log(Export)-log( SS.p_H*(SS.Y_H-SS.C_H) );
    Dev_ExportIdx=  ExportIdx-( SS.Y_H-SS.C_H )*SS.p_H/SS.Y;
    Import      =   MODEL.VAR.C_F.Dev2Level(Dev_C_F).*MODEL.VAR.p_F.Dev2Level(Dev_p_F);
    NetExport   =   Export-Import;
    NetExportIdx=   NetExport./MODEL.VAR.Y.Dev2Level(Dev_Y);
    Dev_NetExportIdx ...
                =   NetExportIdx-( SS.p_H*(SS.Y_H-SS.C_H)-SS.p_F*SS.C_F )/SS.Y;
    
    TempIrf     =   [Dev_C;Dev_Export;Dev_NetExportIdx];
    TempIrf     =   TempIrf(:,1:T_IRF+1)*100;
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'AggDemand_',SH]);
    close(Fig);
end

% Aggregate Supply
LabelList   =   {'Output, Home Tradable Goods','Output, Non-tradable Goods'};

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black');TempFun_LP('--','Blue');...
                 TempFun_LP('-.','Red')};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    Fig         =   FigureSetup(['IRF of Supply to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    ID          =   1;
    
    Dev_Y       =   IRF.(SH).Y;
    Dev_Y_H     =   IRF.(SH).Y_H;
    Dev_Y_N     =   IRF.(SH).Y_N;
    TempIrf     =   [Dev_Y_H;Dev_Y_N]*100;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    
    
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'AggSupply_',SH]);
    close(Fig);
end

% Consumption Components
LabelList   =   {'C: Home Tradable Goods',...
                 'C: Foreign Tradable Goods',...
                 'C: Non-tradable Goods'};

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black');TempFun_LP('--','Blue');...
                 TempFun_LP('-.','Red')};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    Fig         =   FigureSetup(['IRF of Consumption to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    ID          =   1;
    
    Dev_C_H     =   IRF.(SH).C_H;
    Dev_C_F     =   IRF.(SH).C_F;
    Dev_C_N     =   IRF.(SH).C_N;
    TempIrf     =   [Dev_C_H;Dev_C_F;Dev_C_N]*100;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    
    
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'AggConsumption_',SH]);
    close(Fig);
end
%--------------------------------------------------------------------------
% Collect the Key Variables
%--------------------------------------------------------------------------
TempNameList    =   {'C','Pir','ir','Ex','Export'};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    
    Dev_Pir     =   IRF.(SH).Pir;
    Dev_ir      =   IRF.(SH).ir;
    Dev_rr      =   IRF.(SH).rr_dom;
    Dev_Ex      =   cumsum(IRF.(SH).dE);
    Dev_C       =   IRF.(SH).C;
    Dev_C_H     =   IRF.(SH).C_H;
    Dev_C_F     =   IRF.(SH).C_F;
    Dev_Y_H     =   IRF.(SH).Y_H;
    Dev_p_H     =   IRF.(SH).p_H;
    Dev_p_F     =   IRF.(SH).p_F;
    Dev_Y       =   IRF.(SH).Y;
    
    Export      =   ( MODEL.VAR.Y_H.Dev2Level(Dev_Y_H)-MODEL.VAR.C_H.Dev2Level(Dev_C_H) ).* ...
                    MODEL.VAR.p_H.Dev2Level(Dev_p_H);
    ExportIdx   =   Export./MODEL.VAR.Y.Dev2Level(Dev_Y);
    Dev_Export  =   log(Export)-log( SS.p_H*(SS.Y_H-SS.C_H) );
    Dev_ExportIdx=  ExportIdx-( SS.Y_H-SS.C_H )*SS.p_H/SS.Y;
    
    [~,MaxIdx]  =   max(abs(Dev_C));
    TempStatData=   [SubFun_MaxAbsVal(Dev_C);...
                     SubFun_MaxAbsVal(Dev_Pir)*4;...
                     SubFun_MaxAbsVal(Dev_ir)*4;...
                     SubFun_MaxAbsVal(Dev_Ex);...
                     SubFun_MaxAbsVal(Dev_Export)]*100;
    if ii_Irf==1
        StatDataArray   =   zeros(length(TempNameList),length(List_Shock));
    end
    StatDataArray(:,ii_Irf) ...
                =   TempStatData;
end
IrfStatTable=   array2table(StatDataArray,'RowNames',TempNameList,'VariableNames',List_Shock);

writetable(IrfStatTable,[Folder,'Irf.xlsx'],'WriteRowNames',true);

%% Consumption Difference
%--------------------------------------------------------------------------
% Setup
%--------------------------------------------------------------------------
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[0.75,1]*1/3; 
fig_gap     =   [0.05,0.08];
fig_VMargin =   [0.10,0.06];
fig_HMargin =   [0.20,0.04]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(PH,LabelList)legend(PH,LabelList,'fontsize',8,'interpreter','latex','location','best');
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2g'),...
                        'FontSize',struct('X',8,'Y',8),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',0).Setup(Y);

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Blue'); TempFun_LP('--','Red')};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
 
    %----------------------------------------------------------------------
    % By Different Characteristics
    %----------------------------------------------------------------------
    Dev_AggStat =   IRF.(SH).AggStat./SS.AggStat;
    Dev_AggStat(abs(Dev_AggStat)<1e-5)  =   0;
    Scale       =   [min(min(Dev_AggStat(1:6,:)));max(max(Dev_AggStat(1:6,:)))]*100;
    % Real Integration
    Fig         =   FigureSetup(['By Real, Consumption Difference to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    TempIrf     =   [Dev_AggStat(4,:);Dev_AggStat(3,:)]*100;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    LabelList   =   {'Integrated','Non-integrated'};
    
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConDiff_ByRI_',SH]);
    close(Fig);
    
    % Financial Integration
    Fig         =   FigureSetup(['By Fin., Consumption Difference to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    TempIrf     =   [Dev_AggStat(2,:);Dev_AggStat(1,:)]*100;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    LabelList   =   {'Integrated','Non-integrated'};
    
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConDiff_ByFI_',SH]);
    close(Fig);
    
    % Rich vs. Poor
    Fig         =   FigureSetup(['By Asset, Consumption Difference to ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    TempIrf     =   [Dev_AggStat(6,:);Dev_AggStat(5,:)]*100;
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    LabelList   =   {'High Net Asset','Low Net Asset'};
    
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter');
    YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConDiff_ByNA_',SH]);
    close(Fig);
end

%% Distribution of Consumption 
%--------------------------------------------------------------------------
% Setup
%--------------------------------------------------------------------------
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[1,0.75]*1/2.5; 
fig_gap     =   [0.02,0.02];
fig_VMargin =   [0.15,0.02];
fig_HMargin =   [0.15,0.02]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);
LEG         =   @(PH,LabelList)legend(PH,LabelList,'fontsize',8,'interpreter','latex','location','best');
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');

AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2f'),...
                        'FontSize',struct('X',8,'Y',8),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',0).Setup(Y);

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black');TempFun_LP('--','Blue'); ...
                 TempFun_LP('-.','Red')};

ConsDistCell=   cell(1,length(List_Shock));
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    [MaxAbsC_Val,MaxAbsC_Idx] ...
                =   max(abs(IRF.(SH).C));
    ConsDist    =   IRF_ConsDist.(SH);
    %----------------------------------------------------------------------
    % Dispersion
    %----------------------------------------------------------------------
    TempIrf     =   [ConsDist.Disp(1,:);ConsDist.Disp(3,:);ConsDist.Disp(2,:)];
    TempIrf     =   TempIrf(:,1:T_IRF+1)*100;
    LabelList   =   {'std','p75-p25','p90-p10'};
    
    Fig         =   FigureSetup(['Deviation Dispersion, ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_DevDisp_Level_',SH]);
    close(Fig);
    %----------------------------------------------------------------------
    % Dispersion: Normalized
    %----------------------------------------------------------------------
    TempIrf     =   TempIrf/(MaxAbsC_Val*100);
    
    Fig         =   FigureSetup(['Deviation Dispersion: Normalized, ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_DevDisp_Normalized_',SH]);
    close(Fig);
    %----------------------------------------------------------------------
    % Gini and Top Shares
    %----------------------------------------------------------------------
    TempIrf     =   [ConsDist.Gini;ConsDist.TopShare(1,:);ConsDist.TopShare(2,:)];
    TempIrf     =   TempIrf(:,1:T_IRF+1);
    LabelList   =   {'Gini','Top Share: 10\%','Top Share: 90\%'};
        
    Fig         =   FigureSetup(['Level Dispersion, ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                     'AxisProperty',AxisSetup);
    XLabel('Quarter'); YLabel('Deviation from steady state (pp)');
    LEG(PH,LabelList);
    
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_LevelDisp_',SH]);
    close(Fig);
    %----------------------------------------------------------------------
    % Variance Decomposition
    %----------------------------------------------------------------------
    TempIrfList =   {'RI','FI','NA','RI_FI','RI_NA','FI_NA','RI_FI_NA','NA_Fine'};
    TempIrf     =   zeros(length(TempIrfList),size(ConsDist.VarDec.RI,2));
    for jj=1:length(TempIrfList)
        TempIrf(jj,:)   =   ConsDist.VarDec.(TempIrfList{jj})(1,:);
    end
    TempIrf     =   TempIrf(:,MaxAbsC_Idx);
    TempTable   =   array2table(round(TempIrf,3),'VariableNames',{'WithinGroup'},...
                                                 'RowNames',TempIrfList);
    writetable(TempTable,[Folder,'IrfVarDec.xlsx'],'WriteRowNames',true,'Sheet',SH);
    %----------------------------------------------------------------------
    % Consumption IRF by Net Asset
    %----------------------------------------------------------------------
    Fig         =   FigureSetup(['Average Deviation by Net Asset, ',SH],fig_size);
    ax          =   fig_SubPlot(1);
    Axis_X      =   ConsDist.SS.QQ_f';
    Axis_Y      =   ConsDist.AvgDev_byNA(:,MaxAbsC_Idx)'/MaxAbsC_Val;
    [PH,ax]     =   Plot_MultiLines(Axis_X,Axis_Y,'ax',ax,'LineProperty',List_LP,...
                                     'XTick',GR_TickValue('Unit',1).Setup(Axis_X),...
                                     'YTick',Tick_Y(Axis_Y),...
                                     'AxisProperty',AxisSetup);
    XLabel('Net Asset'); YLabel('Deviation from steady state');

    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByNA_',SH]);
    close(Fig);
end

%% Appendix
VarDict     =   struct('C','Consumption','C_N','Consumption: N','C_H','Consumption: H','C_F','Consumption: F',...
                       'L_N','Hours: N','L_H','Hours: H','w_N','Wage: N','w_H','Wage: H',......
                       'Y','Output','Y_N','Output: N','Y_H','Output: H','dE','Depreciation',...
                       'ir_dom','Nominal Rate: Domestic','ir_ext','Nominal Rate: Foreign','rr_dom','Real Return: Domestic','rr_ext','Real Return: Foreign',...
                       'Pir','Inflation','Pir_N','Inflation: N','Pir_H','Inflation: H','Pir_F','Inflation: F' ...
                       );
% 'Eta_M_dom','MP: Domestic','Eta_M_ext','MP: Foreign','Eta_Y_H','Demand: Foreign'
% 'Eta_Z','TFP','Eta_Z_N','TFP: N','Eta_Z_H','TFP: H',...'dE_Real','Real Exchange', ...
% 'Bp_dom','Saving: Domestic','Bp_ext','Saving: Foreign',
% 'E','CAD/USD','CPI','CPI', 'T','Transfer','TAU','Tax Rate','B','Gov. Bond','Profit','Profit' ...
                       
VarList     =   fieldnames(VarDict);

% Graph
Num_Var     =   length(VarList);
Num_Shock   =   length(List_Shock);

N_col       =   4;
N_row       =   ceil(Num_Var/N_col);
fig_size    =   [N_col,N_row].*[1,0.75]*1/4;  
fig_gap     =   [0.04,0.03];
fig_VMargin =   [0.03,0.03];
fig_HMargin =   [0.03,0.01]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);
                                 
AxisSetup   =   GR_Axis('TickFmt',struct('X','%g','Y','%.2g'),...
                        'FontSize',struct('X',6,'Y',6),...
                        'Exponent',struct('X',0,'Y',0),...
                        'Box','off');

Tick_X      =   @(X)GR_TickValue('Unit',4).Setup(X);
Tick_Y      =   @(Y)GR_TickValue('Symmetric',1).Setup(Y);

TempFun_LP  =   @(S,C)GR_Line('Style',S,'Color',MyColor(C),'Width',3);
List_LP     =   {TempFun_LP('-','Black')};
             
for ii_sh=1:Num_Shock
    SH          =   List_Shock{ii_sh};
    fig_Handle  =   FigureSetup(['IRF-',SH],fig_size);
    for ii_vv=1:Num_Var
        VV              =   VarList{ii_vv};
        ax              =   fig_SubPlot(ii_vv);
        if strcmp(VV,'dE_Real')
            TempIrf         =   IRF.(SH).dE-IRF.(SH).Pir;
        elseif strcmp(VV,'E')
            TempIrf         =   cumsum(IRF.(SH).dE);
        elseif strcmp(VV,'CPI')
            TempIrf         =   cumsum(IRF.(SH).Pir);
        else
            TempIrf         =   IRF.(SH).(VV);
        end
        TempIrf(abs(TempIrf)<1e-6)  =   0;
        AxisSetup.Exponent  =   struct('X',0,'Y',floor(log(max(max(abs(TempIrf(:))),1e-7))/log(10)));
        [PH,ax]     =   Plot_IRF(TempIrf,'ax',ax,'LineProperty',List_LP,...
                                 'XTick',Tick_X(XT),'YTick',Tick_Y(TempIrf),...
                                 'AxisProperty',AxisSetup,'Symmetric',1);
        title(VarDict.(VV),'fontsize',8,'interpreter','latex');

    end

    print(fig_Handle,[Folder,'Full_',SH],'-depsc'); 
    close(fig_Handle);
end

%% Distributional Effects
N_col       =   1;
N_row       =   1;
fig_size    =   [N_col,N_row].*[1.05,0.80]*1/2.5; 

AxFontSize  =   8;
TickFmt     =   '%.2f';
XLabel      =   @(Label)xlabel(Label,'fontsize',8,'interpreter','latex');
YLabel      =   @(Label)ylabel(Label,'fontsize',8,'interpreter','latex');
LineStyle   =   {'-','--','-.';'b','r','m';2,2,2};
%--------------------------------------------------------------------------
% Webplot, by FI x RI
%--------------------------------------------------------------------------
fig_gap     =   [0.00,0.00];
fig_VMargin =   [0.00,0.00];
fig_HMargin =   [0.00,0.00]; 

fig_SubPlot =   @(ii_vv)subtightplot(N_row,N_col,ii_vv,...
                                     fig_gap,fig_VMargin,fig_HMargin);

LEG         =   @(LabelList)legend(LabelList,'fontsize',AxFontSize,'interpreter','latex',...
                                                'location','southoutside','Orientation','Vertical');

% Separated
List_Shock  =   {'Eps_Eta_M_dom','Eps_Eta_M_ext','Eps_Eta_Y_H'};
for ii_Irf=1:length(List_Shock)
    SH          =   List_Shock{ii_Irf};
    % Normalized
    Fig         =   FigureSetup(['Web Plot, Distributional Effect by FI x RI, Normalized'],fig_size);
    ax          =   fig_SubPlot(1);
    TempFun_WebPlot({IRF.(SH)});
%     LEG('Benchmark');
    print('-depsc','-r1000',Fig,[Folder,'ConsDist_AvgDevByFIxRI_',SH]);
    close(Fig);

end

